import cv2 as cv
import numpy as np
# image1 = cv.imread('D:\img1.png')
# image2 = cv.imread('D:\img2.png')
# cv.imshow('img1',image1)
# cv.imshow('image2',image2)
# print(image1.shape)
# print(image1)
# print(image2.shape)
# print(image2)
# print('-'*40)
#图像相加（确保shape相同）,饱和操作
# newimg=cv.add(image1,image2)
# cv.imshow('newimg',newimg)
# print(newimg.shape)
# print(newimg)
#图像模运算
# newimg=image1+image2
# cv.imshow('newimg',newimg)
# print(newimg.shape)
# print(newimg)
# 使用cv.addWeighted()混合图像
# newimg = cv.addWeighted(image1, 0.8, image2, 0.2,0)
# cv.imshow('newimg',newimg)
# print(newimg.shape)
# print(newimg)
# cv.waitKey(0)
# cv.destroyAllWindows()
#------------图像平移 warpAffine--------------------------
# 读取图像
# image = cv.imread('D:\mv1.png')
# # 获取图像的高度和宽度
# height, width = image.shape[:2]
# # 定义平移矩阵2*3，这里进行向右平移50个像素，向下平移100个像素
# tx, ty = 150, 200
# M = np.float32([[1, 0, tx], [0, 1, ty]])
# # 使用cv2.warpAffine()进行平移，获取图片宽度和高度image.shape[1], image.shape[0]
# translated_image = cv.warpAffine(image, M, (width, height))
# # 显示原始图像和平移后的图像
# cv.imshow('Original Image', image)
# cv.imshow('Translated Image', translated_image)
# cv.waitKey(0)
# cv.destroyAllWindows()
#------------图像旋转--------------------
# image = cv.imread('D:\mv1.png')
# # 获取图像的高度和宽度
# height, width = image.shape[:2]
# # 定义旋转角度（正值表示逆时针方向，负值表示顺时针方向）
# angle = -45
# # 计算旋转中心点坐标
# center = (width // 2, height // 2) #整除获取中心点坐标
# # 获取旋转矩阵
# rotation_matrix = cv.getRotationMatrix2D(center, angle, 1)
# print(rotation_matrix)
# # 使用cv2.warpAffine()进行平移，获取图片宽度和高度image.shape[1], image.shape[0]
# translated_image = cv.warpAffine(image, rotation_matrix, (width, height))
# # 显示原始图像和平移后的图像
# cv.imshow('Original Image', image)
# cv.imshow('Translated Image', translated_image)
# cv.waitKey(0)
# cv.destroyAllWindows()
#----------图像腐蚀操作，消除物体边界点，实现消除噪声点-----------------------------------------
img = cv.imread('d:/pz.png', 0) #参数0表示以灰度模式读取
kernel = np.ones((5, 5), np.uint8) # 定义5*5卷积核实现腐蚀
print(kernel)
# 进行腐蚀操作，iterations 参数表示腐蚀操作次数，默认1，此参数可以省略
#erosion = cv.erode(img, kernel, iterations=2)
erosion = cv.dilate(img, kernel, iterations=2)
cv.imshow('Original Image', img)# 显示结果
cv.imshow('Eroded Image', erosion)
cv.waitKey(0)
cv.destroyAllWindows()